<html>
<head><meta charset="utf-8"><title>to revert or not to revert that is the question · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html">to revert or not to revert that is the question</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="180742558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742558">(Nov 14 2019 at 15:44)</a>:</h4>
<p>The first thing I wanted to discuss here: I want us to have some guidelines for when such a PR can be reverted</p>



<a name="180742579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742579">(Nov 14 2019 at 15:44)</a>:</h4>
<p>as in, I want compiler-team members to feel free to use some judgement and not have to wait for a rfcbot or synchronous discussion with the whole team</p>



<a name="180742648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742648">(Nov 14 2019 at 15:45)</a>:</h4>
<blockquote>
<p>basically, PR <a href="https://github.com/rust-lang/rust/issues/65134" target="_blank" title="https://github.com/rust-lang/rust/issues/65134">#65134</a> changed the semantics of improper_ctypes lint</p>
</blockquote>
<p>To clarify, <a href="https://github.com/rust-lang/rust/issues/65134" target="_blank" title="https://github.com/rust-lang/rust/issues/65134">#65134</a> made the lint apply to <code>extern "C" fn</code>s as well as functions within <code>extern "C" { }</code> blocks. The actual things that get linted haven't changed (except for some naive handling of generic parameters, but that isn't relevant to this particular issue).</p>



<a name="180742695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742695">(Nov 14 2019 at 15:46)</a>:</h4>
<p>The revert here is meant to be "okay we'll back out the code and take some time to work out a more nuanced solution"</p>



<a name="180742769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742769">(Nov 14 2019 at 15:46)</a>:</h4>
<p>I think a revert is appropriate</p>



<a name="180742770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742770">(Nov 14 2019 at 15:46)</a>:</h4>
<p>We'll discuss what the lint should/n't do on the T-Lang meeting I guess?</p>



<a name="180742772"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742772" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742772">(Nov 14 2019 at 15:46)</a>:</h4>
<p>(as opposed to "this PR was a bad idea and should never have been written" -- that's <strong>not</strong> the message I'm intending to send here)</p>



<a name="180742774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742774">(Nov 14 2019 at 15:46)</a>:</h4>
<p>(still afk-ish)</p>



<a name="180742806"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742806" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742806">(Nov 14 2019 at 15:47)</a>:</h4>
<p>My current thinking was that if some reasonable number of T-compiler members (lets say 3?) all agree that a revert is prudent, then they should be able to approve it.</p>



<a name="180742865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742865">(Nov 14 2019 at 15:47)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> re. "feel free to use some judgement", I agree up to a point -- in a scenario where e.g. there was a perf regression due to a PR fixing a soundness hole then I don't think that should be reverted by anyone just so</p>



<a name="180742869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742869">(Nov 14 2019 at 15:47)</a>:</h4>
<p>Does that make sense? Does anyone think this is a bad idea? (or that I'm being too conservative? Perhaps any one T-compiler member could be entrusted with good enough judgement here?)</p>



<a name="180742937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742937">(Nov 14 2019 at 15:48)</a>:</h4>
<blockquote>
<p><span class="user-mention silent" data-user-id="116083">pnkfelix</span> re. "feel free to use some judgement", I agree up to a point -- in a scenario where e.g. there was a perf regression due to a PR fixing a soundness hole then I don't think that should be reverted by anyone just so</p>
</blockquote>
<p>yes, this is an example why I'm hesistant to say that any one person could make the call</p>



<a name="180742965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742965">(Nov 14 2019 at 15:48)</a>:</h4>
<p>but I think that if you can find three people, then there is probably merit to doing a revert.</p>



<a name="180742976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742976">(Nov 14 2019 at 15:48)</a>:</h4>
<p>(to be clear: I mean three people on T-compiler)</p>



<a name="180742984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742984">(Nov 14 2019 at 15:48)</a>:</h4>
<p>I... sort of disagree</p>



<a name="180742989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742989">(Nov 14 2019 at 15:48)</a>:</h4>
<p>Like, one should be enough</p>



<a name="180742996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180742996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180742996">(Nov 14 2019 at 15:49)</a>:</h4>
<p>(or like lang team decisions in general shouldn't be reverted by t-compiler)</p>



<a name="180743025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743025">(Nov 14 2019 at 15:49)</a>:</h4>
<p>Obviously we'd expect a justification comment but I would lean towards trusting folks</p>



<a name="180743051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743051">(Nov 14 2019 at 15:49)</a>:</h4>
<p>Plus, it seems odd to place a higher bar on reverting than approving</p>



<a name="180743056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743056">(Nov 14 2019 at 15:49)</a>:</h4>
<p>I guess part of my issue is that I don't want to get into a situation where we're policing people</p>



<a name="180743148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743148">(Nov 14 2019 at 15:50)</a>:</h4>
<p>i.e. if you let one person have authority to revert, and they abuse it, then we need to figure out what to do about that</p>



<a name="180743159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743159">(Nov 14 2019 at 15:50)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> depends on the change; my interest here would be to bias in favor of soundness (including if reverting a PR makes something sound)</p>



<a name="180743211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743211">(Nov 14 2019 at 15:51)</a>:</h4>
<p>I guess that's true, but seems true regardless?</p>



<a name="180743252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743252">(Nov 14 2019 at 15:51)</a>:</h4>
<p>but if the authority requires consensus amongst some small group: that can still be abused, certainly, but I guess I'd just think there'd be less questions of "well are they acting responsbly in case X, and case Z"</p>



<a name="180743261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743261">(Nov 14 2019 at 15:51)</a>:</h4>
<p>since, well, we'd expect people to be somewhat cautious</p>



<a name="180743276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743276">(Nov 14 2019 at 15:51)</a>:</h4>
<p>But I don't care too much</p>



<a name="180743326"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743326" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743326">(Nov 14 2019 at 15:52)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> does make a good point that its weird to say that one person has authority to r+</p>



<a name="180743336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743336">(Nov 14 2019 at 15:52)</a>:</h4>
<p>but reversion requires more than that</p>



<a name="180743403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743403">(Nov 14 2019 at 15:53)</a>:</h4>
<p>I guess my basis for requiring a higher bar for reversion is that I worry about negative social impact associated with backing out someone's work</p>



<a name="180743407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743407">(Nov 14 2019 at 15:53)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> guess my point is more about team decisions; anyways -- if no one objects to a revert then it's fine</p>



<a name="180743432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743432">(Nov 14 2019 at 15:53)</a>:</h4>
<p>an r+ is nearly always something that has positive effect on peoples emotional well-being</p>



<a name="180743448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743448">(Nov 14 2019 at 15:53)</a>:</h4>
<p>(except for those who don't like the PR landing, of course! <span aria-label="smiley" class="emoji emoji-1f603" role="img" title="smiley">:smiley:</span> )</p>



<a name="180743452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743452">(Nov 14 2019 at 15:53)</a>:</h4>
<p>I think there's too many different situations to make hard and fast rules about. However, I think in general, we should lean toward reverting PRs because that preserves the status quo and allows us to make a coordinated decision rather than just reacting to issues as they pop up.</p>



<a name="180743529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743529">(Nov 14 2019 at 15:54)</a>:</h4>
<p>hmm</p>



<a name="180743546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743546">(Nov 14 2019 at 15:54)</a>:</h4>
<p>Right, yeah. Reverting is essentially "oh wait r- back 3 hours ago before this was approved" in my eyes</p>



<a name="180743554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743554">(Nov 14 2019 at 15:54)</a>:</h4>
<p>well now we've spent more time on this topic than I expected. <span aria-label="smile" class="emoji emoji-263a" role="img" title="smile">:smile:</span></p>



<a name="180743673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743673">(Nov 14 2019 at 15:55)</a>:</h4>
<p>one easy way to go would be that if the PR author themself approves of a revert, then it shouldn't require any other input beyond a single rustc reviewer to r+ the revert</p>



<a name="180743702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743702">(Nov 14 2019 at 15:56)</a>:</h4>
<p>Well, to give an example, I would I think feel differently if we finally made e.g. <a href="https://github.com/rust-lang/rust/pull/59546" target="_blank" title="https://github.com/rust-lang/rust/pull/59546">https://github.com/rust-lang/rust/pull/59546</a> not require a <code>-Z</code> flag and then it gets reverted due to a perf regression in two companies.<br>
It's not just about trust; it's also about priorities, and they can be different.</p>



<a name="180743768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743768">(Nov 14 2019 at 15:56)</a>:</h4>
<p>so I guess the scenario I'm concerned about is when we want to take action and the original PR author is unavailable or does not support the revert.</p>



<a name="180743773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743773">(Nov 14 2019 at 15:56)</a>:</h4>
<p>but in general I don't think this will be an issue</p>



<a name="180743827"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743827" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743827">(Nov 14 2019 at 15:56)</a>:</h4>
<p>Okay well let me table the question for now</p>



<a name="180743845"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743845" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743845">(Nov 14 2019 at 15:57)</a>:</h4>
<p>maybe we can dedicate a separate topic to it for async discussion</p>



<a name="180743873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743873">(Nov 14 2019 at 15:57)</a>:</h4>
<p>(split the topic now?)</p>



<a name="180743882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743882">(Nov 14 2019 at 15:57)</a>:</h4>
<p>we can either now do lightning fast WG checkin(s), or look at another nominated issue</p>



<a name="180743886"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180743886" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180743886">(Nov 14 2019 at 15:57)</a>:</h4>
<p>oh yeah let me do that</p>



<a name="180745544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180745544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180745544">(Nov 14 2019 at 16:12)</a>:</h4>
<p>BTW, Part of the reason why I wanted us to have some guidelines here</p>



<a name="180745549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180745549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180745549">(Nov 14 2019 at 16:12)</a>:</h4>
<p>Sorry I was AFK for most of this. My take is that we should make it policy that people can revert easily if they think it's warranted. My reasons are: </p>
<ul>
<li>We should trust one another. </li>
<li>Reverts are themselves revertable.</li>
</ul>
<p>I think that people will naturally be less likely to revert a major change (like fixing the infinite loop UB) than they would be to minor updates that cause problems, and adding a "minimum bar of folks" to check-in is just kind of bureaucracy we don't need.</p>
<p>What <em>would</em> probably be helpful is some directions for the steps to take when reverting, and in particular some kind of scheme (nominations?) to help make sure the reverted PR gets discussed -- maybe even a template for the comment that helps to ensure that the PR author knows this is not a personal strike against their code. I think people will understand.</p>
<p>Basically, I think we should have a page on forge detailed our "revert policy" that includes a copy-and-paste comment linking to it and explaining what's happening.</p>



<a name="180745650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180745650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180745650">(Nov 14 2019 at 16:13)</a>:</h4>
<blockquote>
<p>BTW, Part of the reason why I wanted us to have some guidelines here</p>
</blockquote>
<p>... was because I observed an interesting back-and-forth on the revert PR <a href="https://github.com/rust-lang/rust/issues/66378" target="_blank" title="https://github.com/rust-lang/rust/issues/66378">#66378</a></p>



<a name="180745745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180745745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180745745">(Nov 14 2019 at 16:14)</a>:</h4>
<p>where eddyb r+'ed the revert, and the revert-PR author (rkruppe) themself r-'ed it because I (pnkfelix) had nominated the associated issue for discussion at the triage meeting.</p>



<a name="180745770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180745770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180745770">(Nov 14 2019 at 16:14)</a>:</h4>
<p>I took the initiative and r+'ed it again</p>



<a name="180745867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180745867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hanna Kruppe <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180745867">(Nov 14 2019 at 16:15)</a>:</h4>
<p>for completeness: I discussed that out of line with eddyb, asking if they were aware of the nomination and wanted to r+ regardless. they weren't and didn't so we agreed to r-</p>



<a name="180745868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180745868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180745868">(Nov 14 2019 at 16:15)</a>:</h4>
<p>rkruppe (revert PR author) was probably just exercising caution; not wanting to step on toes of the original PR author</p>



<a name="180745946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180745946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180745946">(Nov 14 2019 at 16:16)</a>:</h4>
<blockquote>
<p>for completeness: I discussed that out of line with eddyb, asking if they were aware of the nomination and wanted to r+ regardless. they weren't and didn't so we agreed to r-</p>
</blockquote>
<p>Ah thank you, that is useful context.</p>



<a name="180746003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180746003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180746003">(Nov 14 2019 at 16:16)</a>:</h4>
<p>So it sounds like <span class="user-mention" data-user-id="116009">@nikomatsakis</span> is at least in favor of letting any one T-compiler member have authority to revert</p>



<a name="180746036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180746036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180746036">(Nov 14 2019 at 16:17)</a>:</h4>
<p>based on their <a href="#narrow/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question/near/180745549" title="#narrow/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question/near/180745549">comment above</a></p>



<a name="180746200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180746200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180746200">(Nov 14 2019 at 16:18)</a>:</h4>
<p>And really, I'm not actually opposed to this; specifically because in practice, I think the T-compiler members will end up discussing reverts amongst themselves <em>anyway</em> before acting</p>



<a name="180746376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180746376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180746376">(Nov 14 2019 at 16:20)</a>:</h4>
<p>I think that will work well almost always</p>



<a name="180746673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/to%20revert%20or%20not%20to%20revert%20that%20is%20the%20question/near/180746673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/to.20revert.20or.20not.20to.20revert.20that.20is.20the.20question.html#180746673">(Nov 14 2019 at 16:23)</a>:</h4>
<p>So it seems like the main action item is to follow-up on <span class="user-mention" data-user-id="116009">@nikomatsakis</span> 's suggestion: document steps to take when reverting, including scheme to ensure the reverted PR gets discussed and "maybe even a template for the comment that helps to ensure that the PR author knows this is not a personal strike against their code."</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>